// pages/my/my.js
const AUTH = require('../../utils/auth')
const API = require('../../http/api')
Page({

  /**
   * 页面的初始数据
   */
  data: {
    userInfoType: 1
  },

  // 点击按钮打开获取信息的弹框
  openUser() {
    const _this = this
    wx.getUserProfile({
      lang: 'zh_CN',
      desc: '授权获取用户信息',
      success(res) {
        console.log('获取到用户信息', res);
        // 调用更新的方法 将获取到的信息存到公司后台数据库
        _this.updataUserInfo(res.userInfo)
      }
    })
  },

  // 生命周期函数--监听页面加载
  onLoad() {
  },
  //  *生命周期函数--监听页面显示
  onShow() {
    const _this = this
    // 先判断用户是否登录 登录后才可以获取用户
    AUTH.checkHasedLogined().then(logined => {
      if (!logined) {
        //    先登录 再获取信息
        AUTH.authorize().then(res => {
          // 进入 要获取用户详情信息
          _this.getUserInfo()
          // this.setData({
          //   userInfoType: 2
          // })
          // console.log('要跳转的',res);
        })
      } else {
        // 进入 要获取用户详情信息
        _this.getUserInfo()
      }
    })

  },
  // 获取用户详情信息
  async getUserInfo() {
    // console.log('已经获取到用户');
    const token = wx.getStorageSync('token')
    // 调用用户详细信息接口
    const res = await API.getUserDetailApi(token)
    console.log('用户详情', res);
    // 渲染用户信息的
    let _data = {}
    _data.userInfo = res.data.base
    // 更新用户信息
    if (res.data.base.nick && res.data.base.avatarUrl) {
      this.setData({
        userInfoType: 2
      })
    } else {
      this.setData({
        userInfoType: 1
      })
    }
    this.setData(_data)
  },

  // 更新用户信息
  updataUserInfo(userInfo) {
    console.log('要更新的用户', userInfo);
    // 判断用户是否登录
    AUTH.checkHasedLogined().then(async logined => {
      if (logined) {
        const {
          nickName,
          avatarUrl,
          gender,
          province,
          city
        } = userInfo
        const token = wx.getStorageSync('token')
        const _data = {
          nick: nickName,
          avatarUrl: avatarUrl,
          gender: gender,
          province: province,
          city: city,
          token: token
        }
        // 调用后台  更新用户信息
        const res = await API.updateUserInfoApi(_data)
        console.log('点击一键登录后允许更新用户信息', res);
        // 调用方法 重新获取渲染
        this.getUserInfo()
      } else {}
    })
  },
  /**
   * 生命周期函数--监听页面初次渲染完成
   */
  onReady: function () {},
  /**
   * 生命周期函数--监听页面隐藏
   */
  onHide: function () {},
  /**
   * 生命周期函数--监听页面卸载
   */
  onUnload: function () {

  },

  /**
   * 页面相关事件处理函数--监听用户下拉动作
   */
  onPullDownRefresh: function () {

  },

  /**
   * 页面上拉触底事件的处理函数
   */
  onReachBottom: function () {

  },

  /**
   * 用户点击右上角分享
   */
  onShareAppMessage: function () {

  }
})